草庐IT

MongoDB:@DBRef 查询

全部标签

c# - 如何通过参数化查询在数据库中插入空值

我有一个datetime数据类型:dttm数据库字段类型也是datatime现在我这样做:if(dttm.HasValue){cmd.Parameters.AddWithValue("@dtb",dttm);}else{//Itshouldinsertnullvalueintodatabase//throughcmd.Parameters.AddWithValue("@dtb",_____)}如何做到这一点。 最佳答案 这可以使用空合并运算符来完成:如果dttm的值为空,则DBNull.Value将被插入,否则将使用dttm的值cm

c# - 在 LINQ 查询 'if' 语句中实现条件 'where' 语句

我正在尝试找出一种在我的数据模型中查询对象的方法,并且只包含那些不为空的参数。如下所示:publicListGetWidgets(stringcond1,stringcond2,stringcond3){MyDataContextdb=newMyDataContext();Listwidgets=(fromwindb.Widgetswhere...ifcond1!=nullw.condition1==cond1......ifcond2!=nullw.condition2==cond2......ifcond3!=nullw.condition3==cond3...selectw).T

c# - LINQ to Entities - 查询中的 Where IN 子句

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicates:LinqtoEntities-Sql“IN”clauseHowtoimplementSQL“in”inEntityframework4.0我如何添加WHEREIN语句,例如...SELECT*FROMmyTableWHEREIDIN(1,2,3,4,5)在EntityFramework中

c# - 尝试在所有 Linq 查询中使用 Plinq 是否可以?

我读到如果PLinq发现PLinq更昂贵,它会自动使用非并行Linq。所以我想为什么不对所有事情都使用PLinq(如果可能),让运行时决定使用哪一个。应用程序将部署到多核服务器,我可以开发更多代码来处理并行性。默认使用plinq有哪些陷阱? 最佳答案 一个陷阱是您失去了利用集合排序的能力。采用以下代码:varresults=newint{0,1,2,3};vardoSomethingSpecial=(fromrinresults.AsParallel()selectr/2).ToArray();您不能指望结果按顺序出现,所以结果可能

c# - linq to sql递归查询

EmployeeIdNameManagerId------------------------------1Anull2Bnull3C14D35E2就用这张表,怎么写个linq查询(用linqtosql)递归取父数据。例如,如果选择的雇主ID为4,则应给出ID为4、3、1的员工列表谢谢。 最佳答案 这个.AsHierarchy()扩展方法可能有用:link.但是,这只能通过提供一种将结果放入链接对象的简单方法来实现。为此,它只会获取所有记录并运行自己的本地递归查询。如果您正在寻找将通过LINQtoSQL直接转换为递归SQL查询的LI

C# 6 空条件运算符不适用于 LINQ 查询

我希望它能工作,但显然IL生成的方式会抛出NullReferenceException。为什么编译器不能为查询生成类似的代码?在ThisWorks情况下,编译器生成的代码将表达式的其余部分短路,为什么它不能对LINQ查询情况做同样的事情?classTarget{publicChildTargetChild;}classChildTarget{publicint[]Values;}IEnumerableThisWorks(Targettarget)=>target.Child?.Values.Select(x=>x);IEnumerableThisDoesNotWork(Targetta

c# - Entity Framework 5 查询中的错误数据类型

我们在我们的业务解决方案中使用EF5.0作为我们的ORM的选择,它以n层方式构建,所有内容都解耦,并且使用ninject有一个很好的组合根。最近,我们一直在构建一个在底层使用分区的数据库,我们在DATE列上有一些重要的索引。列在SqlServer2008上正确声明。我们还在EF映射中添加了正确的数据类型,使用HasColumnType("Date")指令。仍然,当通过LinqtoEntities查询表时,我们过滤日期的参数是DateTime2类型的,甚至列都被转换为DateTime2查询,以便类型与参数匹配。这种行为有几个问题。首先,如果我告诉EF引擎数据库中的列是DATE,为什么要将

c# - 多个消费者和查询 C# BlockingCollection

我正在使用.NET4.0BlockingCollection来处理一个项目队列,每个项目都需要通过一个操作来处​​理,而这个操作最多可能需要一秒钟来处理每个项目。这个项目队列可以由不同的线程添加。我有几个关于这个的问题a)允许多个消费者处理这个BlockingCollection?我注意到GetConsumingEnumerable(),似乎适用于单一消费者场景。拥有多个消费者的原因是,通过命名管道实例的处理一次最多可以处理其中三个项目,因此我认为我可以拥有三个消费者。b)有没有办法检查某个项目是否在此队列中,如果是,让调用者检查是否有要阻塞的项目,直到该项目被处理?编辑:根据JonS

c# - 为什么 Entity Framework 需要 30 秒来加载记录,而生成的查询只需要 1/2 秒?

下面的executeTime第一次是30秒,下次执行同一组代码时是25秒。在SQLProfiler中观察时,我立即看到一个登录,然后它就在那里停留了大约30秒。然后,只要运行select语句,应用程序就会完成ToList命令。当我从ManagementStudio运行生成的查询时,数据库查询只需要大约400毫秒。它返回14行和350列。看起来将数据库结果转换为实体所花费的时间非常短,以至于不明显。那么在进行数据库调用之前的30秒内发生了什么?如果EntityFramework这么慢,我们不可能使用它。有没有我做错了什么或者我可以改变什么来显着加快速度?更新:好吧,如果我使用编译查询,第

c# - 如何在 LINQ-to-Entities 查询中使用自定义属性?

我有一个Post类,它是一个EntityFramework模型。它包含如下属性:publicboolShowable{get{returnthis.Public&&this.PublishedDate>DateTime.now}}我可以在这样的查询中使用它:frompindb.Postswherep.Showableselectp;但是当我有一个使用它的属性时,就像这样publicIEnumerableShowablePosts{get{returnfrompindb.Postswherep.Showableselectp;}}那我做不到:frompinShowablePostswhe